/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package be.hogent.iii.project.server.berichthandlers;

import be.hogent.iii.project.common.bericht.Bericht;
import be.hogent.iii.project.common.bericht.GameEindeBericht;
import be.hogent.iii.project.common.bericht.SpelenLijstBericht;
import be.hogent.iii.project.common.bericht.SpelersLijstBericht;
import be.hogent.iii.project.common.game.objecten.Spel;
import be.hogent.iii.project.common.gameroom.objecten.GameRoomData;
import be.hogent.iii.project.server.databank.DataStorage;
import be.hogent.iii.project.server.netwerk.Server;
import com.thoughtworks.xstream.XStream;

/**
 *
 * @author jef donders
 */
public class ServerGameEindeBerichtHandler implements BerichtHandler {

    public ServerGameEindeBerichtHandler(){
        
    }
    
    public void handle(Bericht bericht) {
        GameEindeBericht gameEindeBericht = GameEindeBericht.class.cast(bericht);
        Spel spel = gameEindeBericht.getSpel();
        System.out.println("een spel is afgelopen");

        DataStorage storage = new DataStorage();
        storage.maakBattle(gameEindeBericht.getWinnaars(), gameEindeBericht.getVerliezers(), gameEindeBericht.getDatum(), gameEindeBericht.getTijd() , gameEindeBericht.getMapnaam());
        
        XStream xStream = new XStream();
        String msg = xStream.toXML(gameEindeBericht);
        Server.getServer().stuurBerichtNaarPool(spel.getId(), msg);
        for(int i = 0; i < spel.getDeelnemers().size(); i++){
            Server.getServer().verwijderClientUitPool(spel.getId(), spel.getDeelnemers().get(i).getNick());
            Server.getServer().voegClientToeAanPool("mainChat", spel.getDeelnemers().get(i).getNick());
            //GameRoomData.getGameRoomData().getSpelerslijst().getSpelerslijst().add(spel.getDeelnemers().get(i));
        }
        
         SpelenLijstBericht spelenbericht = new SpelenLijstBericht(GameRoomData.getGameRoomData().getSpelenlijst());
        SpelersLijstBericht spelersbericht = new SpelersLijstBericht(GameRoomData.getGameRoomData().getSpelerslijst());
        Server.getServer().stuurBerichtNaarPool("mainChat", xStream.toXML(spelenbericht));
        Server.getServer().stuurBerichtNaarPool("mainChat", xStream.toXML(spelersbericht));
        
    }
    
}
